/*
 * File:   KnockingStrategy.h
 * Author: root
 *
 * Created on November 16, 2008, 12:00 PM
 */

#include "DrawingStrategy.h"

#ifndef _KNOCKINGSTRATEGY_H
#define	_KNOCKINGSTRATEGY_H

class KnockingStrategy : public Strategy {
protected:
    DrawingStrategy* drawingStrategy;

public:

    KnockingStrategy(const string& myName, int myParameterSize) 
    : Strategy(myName, myParameterSize), drawingStrategy(NULL) {}
    
    KnockingStrategy(int myWeight)
    : Strategy(myWeight), drawingStrategy(NULL) {
    }
    
    virtual void setDrawingStrategy(DrawingStrategy* strategyRef) {
        drawingStrategy = strategyRef;
    }

    virtual bool decideKnock(CCardStack*, const GameState*) = 0;  // This function should NOT modify the game state
    
    virtual ~KnockingStrategy() {}

};

#endif	/* _KNOCKINGSTRATEGY_H */

